from langchain.text_splitter import RecursiveCharacterTextSplitter,Language

text_spliter = RecursiveCharacterTextSplitter(separators=["\n\n", "\n", " ", ""],
                                              chunk_size=60,
                                              chunk_overlap=20,
                                              add_start_index=True)


with open(r"F:\ai\03大模型开发实战\05langchain深度解析\LangChain全面剖析之Retrieval资料\data\langchain.txt",encoding="utf-8") as f:
    langchain_desc = f.read()

with open(r"F:\ai\03大模型开发实战\05langchain深度解析\LangChain全面剖析之Retrieval资料\data\春.txt",encoding="utf-8") as f:
    chunk_desc = f.read()


metadatas = [{"document": 1},{"document":2}]
textResponse=text_spliter.create_documents(texts=[langchain_desc,chunk_desc],
                              metadatas=metadatas)

print(textResponse)
print(textResponse[0])
print(textResponse[1])
print(textResponse[2])

markdown_text = """
# 主题：技术探讨

## 第一部分：前言

这是前言部分，简短介绍文档主旨。

## 第二部分：技术分析

### Python编程

### 解释

1. **标题**：使用不同级别的标题（从`#`到`###`）来组织文档结构。
2. **代码块**：分别用Python和JavaScript代码块来示例如何在Markdown中嵌入代码。
3. **水平线**：使用`***`和`---`创建水平线，用于文档中不同部分之间的视觉分隔。
"""

md_split=RecursiveCharacterTextSplitter.from_language(language=Language.MARKDOWN,
                                             chunk_size=60,
                                             chunk_overlap=0,)
texts=md_split.create_documents(texts=[markdown_text])
print(len(texts))
print(texts[0])